home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 January / enter-2004-01.iso / files / maxima-5.9.0.exe / {app} / share / maxima / 5.9.0 / src / ratpoi.lisp < prev    next >
Encoding:
Text File  |  2003-02-09  |  2.2 KB  |  64 lines

  1. ;;; -*-  Mode: Lisp; Package: Maxima; Syntax: Common-Lisp; Base: 10 -*- ;;;;
  2. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3. ;;;     The data in this file contains enhancments.                    ;;;;;
  4. ;;;                                                                    ;;;;;
  5. ;;;  Copyright (c) 1984,1987 by William Schelter,University of Texas   ;;;;;
  6. ;;;     All rights reserved                                            ;;;;;
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8. ;;;     (c) Copyright 1980 Massachusetts Institute of Technology         ;;;
  9. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  10.  
  11. (in-package "MAXIMA")
  12. (macsyma-module ratpoi)
  13.  
  14. (DECLARE-top (SPECIAL $RATVARS POISCOM1 POISHIFT $LIM))
  15.  
  16. (DECLARE-top (SPECIAL $GCDOFF $RATEXPAND GENVAR VARLIST POISCO1 POISCOM1 GEN TR TLIST)) 
  17.  
  18. (SETQ POISCO1 '(1. . 1.) POISCOM1 '(-1. . 1.)) 
  19.  
  20. ;;; THESE PROGRAMS MAKE POISSON COEFFICIENTS RATIONAL FUNCTIONS (CRE)
  21. ;;; POISCDECODE DECODES A COEFFICIENT
  22.  
  23. (DEFUN POISCDECODE (X) 
  24.        ($RATDISREP (CONS (LIST 'MRAT 'SIMP (CDR $RATVARS) GENVAR) X))) 
  25.  
  26. ;;; INTOPOISCO PUTS AN EXPRESSION INTO POISSON COEFFICIENT FORM
  27.  
  28. ;(defmacro nonperiod (&rest p)
  29. ;  (setq p (cons 'nonperiod p))
  30. ;  (AND (NULL (CADR P)) (EQUAL (CAADDR P) POISHIFT) (NULL (CDDR (CADDR P)))))
  31.  
  32. (DEFUN INTOPOISCO (X) 
  33.        (COND ((AND (NOT (ATOM X)) (NUMBERP (CDR X))) X)
  34.              (T (CDR(RATREP X (CDR $RATVARS))))))
  35.  
  36. ;;; POISCO+ ADDS 2 COEFFICIENTS
  37. ;;; POISCO* MULTIPLIES 2 COEFFICIENTS
  38.  
  39. (DEFUN POISCO* (X Y) (RATTIMES X Y T)) 
  40.  
  41. (DEFUN POISCO+ (X Y) (RATPLUS X Y)) 
  42.  
  43. ;;; HALVE DIVIDES A COEFFICIENT BY 2
  44.  
  45. (DEFUN HALVE (R) (RATTIMES '(1. . 2.) R T)) 
  46.  
  47. ;;; POISSUBSTCO SUBSTITUTES AN EXPRESSION FOR  A VARIABLE IN A COEFFICIENT.
  48.  
  49. (DEFUN POISSUBSTCO (A B X) 
  50.        (INTOPOISCO (MAXIMA-SUBSTITUTE A
  51.                                B
  52.                                ($RATDISREP (CONS (LIST 'MRAT
  53.                                                        'SIMP
  54.  (CDR $RATVARS) GENVAR)
  55.                                                  X))))) 
  56.  
  57. (DEFUN POISPZERO (X) (EQUAL 0. (CAR X))) 
  58.  
  59.  
  60. ;;; TEST FOR ZERO
  61.  
  62. (DEFUN POISCOINTEG (H VAR) (INTOPOISCO ($INTEGRATE (POISCDECODE H) VAR))) 
  63.  
  64.